Expand description
Iroh’s relay is a feature within iroh, a peer-to-peer networking system designed to facilitate direct, encrypted connections between devices. Iroh aims to simplify decentralized communication by automatically handling connections through “relays” when direct connections aren’t immediately possible. The relay server helps establish connections by temporarily routing encrypted traffic until a direct, P2P connection is feasible. Once this direct path is set up, the relay server steps back, and the data flows directly between devices. This approach allows Iroh to maintain a secure, low-latency connection, even in challenging network situations.
This crate provides a complete setup for creating and interacting with iroh relays, including:
protos::relay
: The protocol used to communicate between relay servers and clients. It’s a revised version of the Designated Encrypted Relay for Packets (DERP) protocol written by Tailscale.server
: A fully-fledged iroh-relay server over HTTP or HTTPS. Optionally will also expose a stun endpoint and metrics.client
: A client for establishing connections to the relay.- Server Binary: A CLI for running your own relay server. It can be configured to also offer STUN support and expose metrics.
Re-exports§
pub use protos::relay::MAX_PACKET_SIZE;
pub use self::client::Client as HttpClient;
pub use self::client::ClientBuilder as HttpClientBuilder;
pub use self::client::ClientError as HttpClientError;
pub use self::client::ClientReceiver as HttpClientReceiver;
Modules§
- Exposes
Client
, which allows to establish connections to a relay server. - Default values used in the relay.
- HTTP-specific constants for the relay server and client.
- Protocols used by the iroh-relay
- Create a QUIC server that accepts connections for QUIC address discovery.
- server
server
A fully-fledged iroh-relay server over HTTP or HTTPS.
Structs§
- A connection to a relay server.
- A URL identifying a relay server.
Enums§
- The type of message received by the
Conn
from a relay server.